package face.pay.web.device.service;

import face.pay.entity.DeviceApplyInfo;
import face.pay.entity.DeviceOrderInfo;
import face.pay.entity.UserInfo;
import face.pay.util.ResultMessage;
import face.pay.util.page.PageData;
import face.pay.util.page.PageParam;

import java.util.ArrayList;

/**
 * @Classname DeviceApplyInfoService
 * @Description JJL
 * @Date 2019/11/13 17:22
 */
public interface DeviceApplyInfoService {
    /**
     * 新增代理商申请设备记录
     * @param deviceApplyInfo
     */
    ResultMessage addDeviceApplyInfo(UserInfo loginUser,DeviceApplyInfo deviceApplyInfo);

    /**
     * oem查询代理商的设备申请记录
     *
     * @param loginUser
     * @param pageParam
     * @return
     */
    PageData queryPage(UserInfo loginUser, PageParam pageParam, DeviceApplyInfo deviceApplyInfo);

    /**
     * 设备申请  申请驳回
     * @param deviceApplyInfo
     * @return
     */
    ResultMessage rejectApplyInfo(UserInfo loginUser,DeviceApplyInfo deviceApplyInfo);

    /**
     * 设备申请审批   确认划拨
     * @param loginUser
     * @param transferDeviceInfo  value: 划拨的设备id, title: 划拨设备类型与设备sn  格式如：  微信:sn
     * @param applyId 设备申请记录id
     * @param userId 设备申请人id
     * @return
     */
    ResultMessage transferDeviceInfo(UserInfo loginUser, ArrayList<DeviceApplyInfo> transferDeviceInfo,
                                     Integer applyId,
                                     Integer userId);

    /**
     * 设备申请审批   暂存数据
     * @param loginUser
     * @param transferDeviceInfo  value: 划拨的设备id, title: 划拨设备类型与设备sn  格式如：  微信:sn
     * @param applyId 设备申请记录id
     * @return
     */
    ResultMessage depositDeviceInfo(UserInfo loginUser, ArrayList<DeviceApplyInfo> transferDeviceInfo, Integer applyId);


    ResultMessage queryUsesOperDevices(UserInfo loginUser, Integer applyId);

    /**
     * 划拨完成数据详情
     * @param loginUser
     * @param applyId
     * @return
     */
    ResultMessage detail(UserInfo loginUser, Integer applyId);
}
